;:poke56,128:clr ;:sys36864 ;.opt oo vic =$d000 cint =65409 clall =$ffe7 second =$ff93 tksa =$ff96 acptr =$ffa5 ciout =$ffa8 untlk =$ffab unlsn =$ffae listen =$ffb1 talk =$ffb4 print =$ffd2 get =65508 setcur =58732 clrscr =$e544 axout =$bdcd return =$aad7 space =$ab3f sc1 =$400 sc2 =1984 f =55296-sc1 lock =$291 bild =$d1 farb =$f3 farbram =$ea24 pifout =$ea1e calcx =$e9f0 rot =2 gelb =7 gruen =1 color =646 strout =$ab1e tmp =2 tmp2 =4 sa =$b9 fa =$ba bifout =$ea1c spalte =211 zeile =214 ctr =247 dmem =$400 dprg =$8000 key =198 uhr =$a2 plot =$fff0 data =704 huck =$46db best =300 zehntel =248 latch =249 mode =181 erg =820 track =6 half =182 sc3 =1936 sc4 =1198 sc5 =1219 sc6 =1124 headup =$5b3 jmp run mw .byte "w-m" mr .byte "r-m" me .byte "e-m" hext .byte "0123456789abcdef" tix .byte "\x13\x11\x1d\x97justage- und geschwindigkeitstest 1541" .byt 13 .byte "\x1dvon nikolaus heusler (c) nh-010191-arr" brk lint .byt 13 .byte "\x05L\xaf\xaf\xaf\xaf\xaf\xaf\xaf\xaf\xaf\xaf\xaf\xaf\xaf\xaf\xaf\xaf\xaf\xaf\xaf\xaf\xaf\xaf\xaf\xaf\xaf\xaf\xaf\xaf\xaf\xaf\xaf\xaf\xaf\xaf\xaf\xaf\xaf\xaf" brk maint .byte "\x97\x13\x11\x11\x11\x11\x11\x11\x11\x11\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x12 1 \x92 disk-rotations-" .byt 13 .byte "\x11\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1dgeschwindigkeits-test" .byt 13 .byte "\x11\x11\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x12 2 \x92 justage-pruefung" .byt 13 .byte "\x11\x11\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x12 q \x92 programmende" brk untxt .byte "\x05O\xb7\xb7\xb7\xb7\xb7\xb7\xb7\xb7\xb7\xb7\xb7\xb7\xb7\xb7\xb7\xb7\xb7\xb7\xb7\xb7\xb7\xb7\xb7\xb7\xb7\xb7\xb7\xb7\xb7\xb7\xb7\xb7\xb7\xb7\xb7\xb7\xb7\xb7" brk untxt2 .byte "\x97bitte durch tastendruck waehlen!" .byt 13,0 untxt3 .byte "programmversion v1 01.91" brk sptx .byte "\x13\x11\x1d\x97 rotations-geschwindigkeitstest" brk spanl .byte "\x97\x13\x11\x11\x11\x11\x11\x11\x11\x11\x1d\x1dgemessen wird die geschwindigkeit," .byt 13 .byte "\x11\x1d\x1dmit der die diskette gedreht wird." diskin .byt 13 .byte "\x11\x11\x1d\x1dbitte legen sie eine formatierte" .byt 13 .byte "\x11\x1d\x1ddiskette ein!" brk sweit .byt 13 .byte "\x11\x11\x1d\x1dweiter mit taste \x12 q \x92 - abbruch" brk tasfer .byte "\x97bitte taste druecken wenn fertig" brk spdhead .byte "\x13\x11\x11\x11\x11\x11\x1d\x97sollwert rpm\x05\xdd\x97istwert rpm\x05\xdd\x97differenz r" .byte "pm" .byt 13 .byte "\x05\x1d\xc0\xc0\xc0\xc0\xc0\xc0\xc0\xc0\xc0\xc0\xc0\xc0\xb1\xc0\xc0\xc0\xc0\xc0\xc0\xc0\xc0\xc0\xc0\xc0\xb1\xc0\xc0\xc0\xc0\xc0\xc0\xc0\xc0\xc0\xc0\xc0\xc0\xc0" .byt 13,0 dife .byte "diskfehler nr. " brk dh .byte "\x1d\x1d\x1d\x1d\x1d\x05300.0\x1d\x1d\x1d\x1d" brk altx .byte "\x13\x11\x1d\x97 kopfjustage-test" brk alanl .byte "\x97\x13\x11\x11\x11\x11\x11\x1d\x1dgeprueft wird, ob der schreib-lese-" .byt 13 .byte "\x11\x1d\x1dkopf des laufwerks dejustiert ist." brk aweit .byt 13 .byte "\x11\x11\x1d\x1d\x12 j \x92 justagetest alle tracks" .byt 13 .byte "\x11\x1d\x1d\x12 1 \x92 justagetest track 1" .byt 13 .byte "\x11\x1d\x1d\x12 w \x92 justagetest endlos" .byt 13 .byte "\x11\x1d\x1d\x12 q \x92 abbruch \x12 h \x92 halftracks an/aus\x11" .byte "\x9d\x9d\x9d\x9d\x9d\x9d " brk abild .byte "\x13\x11\x1d\x97a:geprueft. track c:track-lesbarkeit" .byt 13 .byte "\x1db:gelesener track d:halftr.-lesbark." .byt 13,13 .byte "\x1d -a- -b- -c- -d- \x05\xdd\x97 -a- -b- -c- -d-" .byt 13 .byte "\x05\x1d\xc0\xc0\xc0\xc0\xc0\xc0\xc0\xc0\xc0\xc0\xc0\xc0\xc0\xc0\xc0\xc0\xc0\xc0\xc0\xdb\xc0\xc0\xc0\xc0\xc0\xc0\xc0\xc0\xc0\xc0\xc0\xc0\xc0\xc0\xc0\xc0\xc0\xc0" .byt 13,0 bittet .byte "\x12\x97(taste druecken)\x92" brk clrscn jsr clrscr ldx #79 stx sc1 inx stx sc1+39 lda #76 sta sc2 lda #122 sta sc2+39 lda #1 ldy #39 f1 sta sc1+f,y sta sc2+f,y dey bpl f1 ldy #37 c1 lda #119 sta sc1+1,y lda #111 sta sc2+1,y dey bpl c1 ldx #1 c2 jsr calcx jsr farbram txa pha lda #116 ldy #0 ldx #1 jsr pifout ldy #39 lda #106 jsr pifout pla tax inx cpx #24 bcc c2 rts plot0 ldy #0 clc jmp plot center pha txa lsr sec sbc #21 eor #-1 sta spalte pla jmp strout title jsr clrscn lda #tix jsr strout line lda #lint jsr strout lda #122 ldx #1 jmp bifout unline jsr plot0 lda #untxt jsr strout ldx #1 lda #80 jsr bifout jmp return unten2 ldx #32 lda #untxt2 jsr center ldx #24 lda #untxt3 jmp center tasfert jsr clrscn ldx #22 jsr unline ldx #32 lda #tasfer bne center unten ldx #21 jsr unline bne unten2 hexout pha lsr lsr lsr lsr jsr hex1 pla hex1 and #15 tax lda hext,x jmp print info lda half bne haus ldx #32 ldy #99 bne han haus ldy #32 ldx #99 han stx sc3 stx sc3+1 sty sc3+3 sty sc3+4 sty sc3+5 rts befrei lda half bne mitdrin erase lda #32 sta sc4 sta sc4+1 sta sc4+2 sta sc5 sta sc5+1 sta sc5+2 ldy #17 loop sta sc6,y dey bpl loop doned rts mitdrin lda mode cmp #1 beq erase bne doned talk15 jsr unlsn lda fa jsr talk lda #$6f sta sa jmp tksa list15 lda fa jsr listen lda #$6f sta sa jmp second mwrite jsr list15 ldy #2 mwr lda mw,y jsr ciout dey bpl mwr rts mread jsr list15 ldy #2 mre lda mr,y jsr ciout dey bpl mre rts mexec jsr list15 ldy #2 mex lda me,y jsr ciout dey bpl mex rts start pha jsr mexec pla jsr ciout lda #>dmem jsr ciout jmp unlsn key0 lda #0 sta key rts colfor sta color formnum cpx #100 bcs x0out cpx #10 bcs f10 jsr space f10 jsr space x0out lda #0 jmp axout readerg jsr start jsr mread lda #$e0 jsr ciout lda #6 jsr ciout lda #20 jsr ciout jsr talk15 ldy #0 re jsr acptr sta erg,y iny cpy #20 bne re jsr untlk ldy #0 sty data+2 sty data+3 sty data+1 lda #16 sta data add iny cpy #17 beq added lda data+2 clc adc erg,y sta data+2 bcc add inc data+3 bne add added lda #0 sta latch sta latch+1 ldx #16 po1 asl data+2 rol data+3 rol latch rol latch+1 lda latch sec sbc data tay lda latch+1 sbc data+1 bcc po2 inc data+2 sta latch+1 sty latch po2 dex bne po1 jmp get run lda #128 sta lock jsr cint jsr clall ldx #11 stx vic+32 inx stx vic+33 jsr title lda fa cmp #8 bcc set8 cmp #12 bcc is8 set8 lda #8 sta fa is8 lda #22 sta ctr lda #0 ldy #>dmem sta tmp sty tmp+1 lda #dprg sta tmp2 sty tmp2+1 transmc jsr mwrite lda tmp jsr ciout lda tmp+1 jsr ciout lda #32 jsr ciout ldy #0 msend lda (tmp2),y jsr ciout iny cpy #32 bcc msend tya clc adc tmp sta tmp bcc noinc1 inc tmp+1 noinc1 tya clc adc tmp2 sta tmp2 bcc noinc2 inc tmp2+1 noinc2 jsr unlsn dec ctr bne transmc lda #-1 sta half mainmenu jsr title lda #maint jsr strout jsr unten jsr key0 meng jsr get cmp #"q" beq quit cmp #"1" beq speed cmp #"2" bne meng jmp align quit jsr list15 lda #"i" jsr ciout lda #"0" jsr ciout jsr unlsn jsr list15 lda #"u" jsr ciout lda #":" jsr ciout lda #0 sta uhr wartfert lda uhr cmp #64 bmi wartfert jsr unlsn jsr clall jmp cint speed jsr clrscn lda #sptx jsr strout jsr line lda #spanl jsr strout lda #sweit jsr strout jsr key0 waitq jsr get beq waitq cmp #"q" bne miss jmp mainmenu miss jsr tasfert lda #sptx jsr strout jsr line lda #spdhead jsr strout lda #18 spdloop jsr start jsr mread lda #$e0 jsr ciout lda #6 jsr ciout lda #5 jsr ciout jsr talk15 ldy #5 holit jsr acptr sta data-1,y dey bne holit jsr untlk lda #dh jsr strout lda data beq geht lda #dife jsr strout lda data jsr hexout jsr key0 wky jsr get beq wky jmp spdfert geht sec lda data+4 sbc #huck sta data+1 bcs noover sec lda #huck sbc data+3 sta data+1 jsr rota clc lda latch+1 adc #best adc #0 sta latch lda #"+" bne ausgabe noover jsr rota lda zehntel beq ze0 inc latch+1 bne noik2 inc latch noik2 sec lda #10 sbc zehntel sta zehntel ze0 sec lda #best sbc #0 sta latch lda #"-" ausgabe pha lda #17 sta spalte lda latch ldx latch+1 jsr axout lda #"." jsr print ldx zehntel jsr x0out lda #30 sta spalte pla jsr print ldx data+3 jsr formnum lda #"." jsr print ldx data+4 jsr x0out jsr return lda zeile cmp #22 bcc noscroll dec zeile ldx #7 jsr calcx jsr farbram sl1 lda bild clc adc #40 sta tmp lda bild+1 adc #0 sta tmp+1 lda farb clc adc #40 sta tmp2 lda farb+1 adc #0 sta tmp2+1 ldy #38 sl2 lda (tmp),y sta (bild),y lda (tmp2),y sta (farb),y dey bne sl2 lda tmp sta bild lda tmp+1 sta bild+1 lda tmp2 sta farb lda tmp2+1 sta farb+1 inx cpx zeile bcc sl1 lda #32 ldy #38 sl3 sta (bild),y dey bne sl3 jsr setcur noscroll jsr get beq spdweiter spdfert lda #12 jsr start jsr clall jmp mainmenu spdweiter lda #15 jmp spdloop rota ldy #0 ldx #0 r1 sec lda data+2 sbc #60 sta data+4 lda data+1 sbc #0 sta data+3 bcc r2 lda data+4 sta data+2 lda data+3 sta data+1 iny bne r1 dey r3 sty latch+1 stx zehntel sty data+3 stx data+4 cpy #2 bcc r4 cpy #4 bcc r5 lda #rot r6 sta color rts r4 lda #gruen bne r6 r5 lda #gelb bne r6 r2 sec lda data+2 sbc #6 sta data+4 lda data+1 sbc #0 sta data+3 bcc r3 lda data+4 sta data+2 lda data+3 sta data+1 inx bne r2 h10 lda half eor #-1 sta half jsr info jmp waita align jsr clrscn lda #altx jsr strout jsr line lda #alanl jsr strout lda #diskin jsr strout lda #aweit jsr strout jsr info jsr key0 waita jsr get cmp #"q" bne al2 jmp mainmenu al2 cmp #"h" beq h10 cmp #"w" beq al3 cmp #"1" beq al1 cmp #"j" bne waita ldx #0 txa beq setali al1 ldx #1 lda #21 bne setali al3 ldx #2 lda #0 setali stx mode alineu pha jsr clrscn lda #abild jsr strout jsr befrei ldx #6 senk txa pha jsr calcx jsr farbram ldy #20 lda #93 ldx #1 jsr pifout pla tax inx cpx #24 bcc senk jsr setcur lda #1 sta track pla neutr jsr readerg beq keitas jmp tabbr keitas lda track cmp #19 bcc links ldy #23 adc #$f2 bcs rechts links ldy #2 adc #5 rechts tax clc jsr plot lda #gruen sta color ldx track jsr formnum jsr space ldx erg+17 cpx track beq gleich lda #rot sta color gleich jsr formnum jsr space ldx data+2 lda #gruen cpx #100 beq is100 lda #gelb cpx #94 bcs is100 lda #rot is100 jsr colfor lda mode cmp #1 beq abbr1 jsr space lda half beq noha lda #3 jsr readerg bne aliend lda #gruen ldx data+2 beq is0 lda #gelb cpx #81 bcc is0 lda #rot is0 jsr colfor lda erg+19 ora erg+18 beq nix lda erg+18 cmp erg+19 bcs amin lda #"+" .byt $2c amin lda #"-" jsr print bcc nix noha jsr mexec lda #headup jsr ciout jsr unlsn nix inc track lda track cmp #36 beq abbr36 lda #6 jmp neutr tabbr lda #12 .byt $2c aliend lda #9 jsr taste jmp align abbr1 lda #24 jsr taste lda #27 jsr start jmp align abbr36 lda mode beq aliend lda #9 jsr start lda #0 jmp alineu taste jsr start ldx #23 ldy #23 clc jsr plot lda #bittet jsr strout jsr key0 geky jsr get beq geky rts